// window.js

// 获取 loginFrame 元素
function getLoginFrame() {
    const loginFrame = document.getElementById('loginFrame');
    // if (!loginFrame) {
    //     console.error('loginFrame not found in the DOM.');
    //     alert('loginFrame 未找到，请检查 HTML 文件中的 ID 是否正确。');
    // }
    return loginFrame;
}

function closeWindow() {
    const loginBox = window.parent.document.getElementById('loginBox');
    if (loginBox) {
        loginBox.style.display = 'none';
        const loginFrame = getLoginFrame();
        if (loginFrame) {
            loginFrame.src = 'about:blank'; // 设置iframe的src属性为about:blank，即空白页
        }
    }
}



// 切换到登录窗口
function switchTologin() {
        var loginFrame = window.parent.document.getElementById('loginFrame');
        if (loginFrame) {
        loginFrame.src = 'login-window.html';
    } else {
        alert('无法切换到登录窗口，loginFrame 未找到。');
    }
}

// 切换到注册窗口
function switchToRegistration() {
    const loginFrame =  window.parent.document.getElementById('loginFrame');
    loginFrame.src = 'Registration-Window.html'; // 设置iframe的src属性为Registration-Window.html
}

// 切换到修改密码窗口
function switchToPassword() {
    var loginFrame = window.parent.document.getElementById('loginFrame');
    if (loginFrame) {
        loginFrame.src = 'change-password-window.html';
    } else {
        alert('无法切换到修改密码窗口，loginFrame 未找到。');
    }
}

//切换到个人信息窗口
function switchToPersional(){
    var loginFrame = window.parent.document.getElementById('loginFrame');
    loginFrame.src = 'Personal_Information_window.html';
}

// 刷新验证码
function refreshCaptcha() {
    let milliseconds = new Date().getTime();
    document.getElementById("checkCodeImage").src = "/javaweb_project/checkCodeServlet?" + milliseconds;
}

// 表单验证
function validateForm() {
    var username = document.getElementById("user_name").value;
    var password = document.getElementById("password").value;
    var confirmPassword = document.getElementById("password2").value;

    var usernamePattern = /^[A-Za-z][A-Za-z0-9]{10,}$/;
    if (!usernamePattern.test(username)) {
        alert("账号必须以英文开头，且长度至少为11位。");
        return false;
    }

    var passwordPattern = /^(?=.*[A-Za-z])(?=.*\d)(?=.*[^A-Za-z\d]).{6,12}$/;
    if (!passwordPattern.test(password)) {
        alert("密码必须包含至少6位，最多12位，且包含数字、英文和一个特殊字符。");
        return false;
    }

    if (password !== confirmPassword) {
        alert("两次输入的密码不一致。");
        return false;
    }

    return true;
}

// 显示登录窗口
function showLoginBox() {
    document.getElementById('loginBox').style.display = 'block';
    const loginFrame = getLoginFrame();
    if (loginFrame) {
        loginFrame.src = 'login-window.html';
        bindCloseBtnEvents(loginFrame);
    }
}

// 显示注册窗口
function showRegistrationBox() {
    document.getElementById('loginBox').style.display = 'block';
    const loginFrame = getLoginFrame();
    if (loginFrame) {
        loginFrame.src = 'Registration-Window.html';
        bindCloseBtnEvents(loginFrame);
    }
}

// 显示修改密码窗口
function showPasswordBox() {
    document.getElementById('loginBox').style.display = 'block';
    const loginFrame = getLoginFrame();
    if (loginFrame) {
        loginFrame.src = 'change-password-window.html';
        bindCloseBtnEvents(loginFrame);
    }
}

// 显示个人信息窗口
function showPersonalBox() {
    document.getElementById('loginBox').style.display = 'block';
    const loginFrame = getLoginFrame();
    if (loginFrame) {
        loginFrame.src = 'Personal_Information_window.html';
        bindCloseBtnEvents(loginFrame);
    }
}

// 绑定关闭按钮事件
function bindCloseBtnEvents(loginFrame) {
    // 确保 iframe 已加载
    loginFrame.onload = function() {
        var iframeDocument = loginFrame.contentDocument || loginFrame.contentWindow.document;
        var closeBtn = iframeDocument.querySelector('.close-btn');
        if (closeBtn) {
            closeBtn.addEventListener('click', closeWindow);
        }
    };
}

// 确保在DOM加载完成后绑定事件
document.addEventListener('DOMContentLoaded', function() {
    const loginFrame = getLoginFrame();
    if (loginFrame) {
        bindCloseBtnEvents(loginFrame);

        // 绑定其他事件
        document.querySelectorAll('.reg-form').forEach(function(form) {
            form.addEventListener('submit', function(event) {
                if (!validateForm()) {
                    event.preventDefault(); // 阻止表单提交
                }
            });
        });

        document.getElementById('loginBox').addEventListener('click', function(event) {
            if (event.target == this) {
                closeWindow();
            }
        });

        // 确保这些函数也在 DOM 完全加载后调用
        document.getElementById('switchToRegistrationBtn').addEventListener('click', switchToRegistration);
        document.getElementById('switchTopasswordBtn').addEventListener('click', switchTopassword);
    }
    // else {
    //     alert('无法绑定事件，loginFrame 未找到。');
    // }
});


// 窗口大小改变时重新设置背景图片高度
window.addEventListener('resize', resize);

function resize() {
    const formImage = document.querySelector('.form__image');
    formImage.style.height = document.body.scrollHeight + 'px';
}

resize();//初始化

function closeWindow() {
    const loginBox = window.parent.document.getElementById('loginBox');
    if (loginBox) {
        loginBox.style.display = 'none';
        const loginFrame = getLoginFrame();
        if (loginFrame) {
            loginFrame.src = 'about:blank'; // 设置iframe的src属性为about:blank，即空白页
        }
    }
}

function logout() {
    localStorage.removeItem('username'); // 清除localStorage中的用户名
    dispatchEvent(new Event('loginStatusChanged'));
    checkLoginStatus();
    closeWindow();
    location.reload();
}

// 在页面加载时监听这个事件
document.addEventListener('loginStatusChanged', checkLoginStatus);

// 更新父窗口的用户信息
function updateUserInfoForParent(username) {
    window.parent.updateUserInfo(username);
}

function updateUserInfo(username) {
    const userProfileBtn = document.getElementById('userProfileBtn');
    const loginRegisterBtn = document.getElementById('loginRegisterBtn');
    if (userProfileBtn && loginRegisterBtn) {
        if (username){
        userProfileBtn.querySelector('a').innerText = username;
        userProfileBtn.style.display = 'inline'; // 显示用户名按钮,inline保证不被换行
        loginRegisterBtn.style.display = 'none'; // 隐藏登录注册按钮
            alert('进错了')
        }
        else{
            alert('进来了')
            userProfileBtn.style.display = 'none';
            loginRegisterBtn.style.display = 'inline';
        }
    } else {
        console.error('User profile or login register button not found');
    }
}

function  checkLoginStatus() {
    const username = localStorage.getItem('username');//获取localStorage中的用户名
    const  userProfileBtn = document.getElementById('userProfileBtn');
    const loginRegisterBtn = document.getElementById('loginRegisterBtn');
    if (!username){
        userProfileBtn.style.display = 'none';//隐藏用户名按钮
        loginRegisterBtn.style.display = 'inline';//显示登录注册按钮
    }else{
        userProfileBtn.querySelector('a').innerText = username;//设置用户名
        userProfileBtn.style.display = 'inline';
        loginRegisterBtn.style.display = 'none';
    }
}